package com.cap.bts.crmdp.dealer.coupon.dao;

import java.util.List;

import com.cap.bts.crmdp.dealer.activation.domain.PackageRedemptionLines;
import com.cap.bts.crmdp.dealer.coupon.domain.TicketLine;
import com.cap.bts.crmdp.dealer.coupon.dto.TicKetDefineDto;
import com.cap.bts.framework.common.dao.IBaseDao;
import com.cap.bts.framework.common.exception.AppException;

public interface ITicketLineDefineDao extends IBaseDao<TicketLine, Long> {

    /**
     * 新增优惠券和提货券的行信息
     * @param ticket
     * @return
     * @throws AppException
     */
    public TicketLine insertTicketLineInfo(TicketLine ticketLine) throws AppException;

    /**
     * 根据优惠券和提货券ID查询其详细信息
     * @param ticketId
     * @return
     * @throws AppException
     */
    public List<TicketLine> getTicketLineInfoList(String ticketId) throws AppException;

    /**
     * 根据TicketId取得优惠券和优惠券的描述项目
     * @Date        :      Sep 14, 2015
     * @param TicketDefineId
     * @return
     * @throws AppException
     */
    public String getTicketDescriptionInfoByTicketId(Long ticketDefineId) throws AppException;

    /**
     * 根据优惠券和提货券的详细信息的ID查询其详细信息
     * @param id
     * @return
     * @throws AppException
     */
    public TicketLine getTicketLineInfoById(Long id) throws AppException;

    /**
     * 优惠券和提货券的详细信息修改
     * @param ticKetDefineDto
     * @return
     * @throws AppException
     */
    public boolean updateTiketLineInfo(TicKetDefineDto ticKetDefineDto) throws AppException;

    /**
     * 根据ticketDefId删除优惠券和提货券的详细信息
     * @param ticketLineList
     * @return
     * @throws AppException
     */
    public boolean removeTicketLineInfoByTicketDefId(List<TicketLine> ticketLineList) throws AppException;
    
    /**
     * 由ticketDefId取得PackageRedemptionLines
     * @param ticketLineList
     * @return
     * @throws AppException
     */
    public PackageRedemptionLines getPackageRedemptionLinesByTicketDefId(Long ticketDefId) throws AppException;
    
}
